package com.cardone.platform.common.service;

import java.util.List;
import java.util.Map;

import com.cardone.common.cache.support.CacheEvictSupport;
import com.cardone.common.dto.PaginationDto;
import com.cardone.platform.common.dto.EntityDefaultDto;
import com.cardone.platform.common.dto.EntityExtendDto;
import com.cardone.platform.common.dto.EntityLogDto;
import com.cardone.platform.common.dto.EntityRelationshipDto;
import com.cardone.platform.common.dto.EntityTreeDto;

/**
 * 辅助服务
 * 
 * @author yaoht
 */
public interface AssistantService extends CacheEvictSupport {
	/**
	 * spring bean id
	 */
	String BEAN_ID = "com.cardone.platform.common.service.AssistantService";

	/**
	 * 保存:实体与默认
	 * 
	 * @param saveEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象
	 */
	EntityDefaultDto saveEntityDefaultByIdOrCode(EntityDefaultDto saveEntityDefault);

	/**
	 * 保存:实体与默认
	 * 
	 * @param saveEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象
	 */
	EntityDefaultDto saveEntityDefaultByName(EntityDefaultDto saveEntityDefault);

	/**
	 * 删除:实体与默认
	 * 
	 * @param deleteEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityDefaultByCode(EntityDefaultDto deleteEntityDefault);

	/**
	 * 删除:实体与默认
	 * 
	 * @param deleteEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityDefaultByIds(EntityDefaultDto deleteEntityDefault);

	/**
	 * 设置:实体与默认
	 * 
	 * @param updateEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityDefaultByCode(EntityDefaultDto updateEntityDefault);

	/**
	 * 设置:实体与默认
	 * 
	 * @param updateEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityDefaultByIds(EntityDefaultDto updateEntityDefault);

	/**
	 * 读取:实体与默认
	 * 
	 * @param readEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象
	 */
	Integer readEntityDefaultByCodeNqId(EntityDefaultDto readEntityDefault);

	/**
	 * 读取:实体与默认
	 * 
	 * @param readEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象
	 */
	Integer readEntityDefaultByName(EntityDefaultDto readEntityDefault);

	/**
	 * 查询:实体与默认
	 * 
	 * @param findEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象
	 */
	EntityDefaultDto findEntityDefaultByCode(EntityDefaultDto findEntityDefault);

	/**
	 * 查询:实体与默认
	 * 
	 * @param findEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象
	 */
	EntityDefaultDto findEntityDefaultById(EntityDefaultDto findEntityDefault);

	/**
	 * 查询:实体与默认
	 * 
	 * @param findListEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象集合
	 */
	List<EntityDefaultDto> findListEntityDefaultByCode(EntityDefaultDto findListEntityDefault);

	/**
	 * 查询:实体与默认
	 * 
	 * @param findListEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认对象集合
	 */
	List<EntityDefaultDto> findListEntityDefaultByName(EntityDefaultDto findListEntityDefault);

	/**
	 * 分页:实体与默认
	 * 
	 * @param paginationEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认分页对象
	 */
	PaginationDto<EntityDefaultDto> paginationEntityDefaultByCode(EntityDefaultDto paginationEntityDefault);

	/**
	 * 分页:实体与默认
	 * 
	 * @param paginationEntityDefault
	 *            实体与默认对象
	 * 
	 * @return 实体与默认分页对象
	 */
	PaginationDto<Map<String, Object>> paginationEntityDefaultByName(EntityDefaultDto paginationEntityDefault);

	/**
	 * 保存:实体日志
	 * 
	 * @param saveEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象
	 */
	EntityLogDto saveEntityLogByIdOrCode(EntityLogDto saveEntityLog);

	/**
	 * 保存:实体日志
	 * 
	 * @param saveEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象
	 */
	EntityLogDto saveEntityLogByName(EntityLogDto saveEntityLog);

	/**
	 * 删除:实体日志
	 * 
	 * @param deleteEntityLog
	 *            实体日志对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityLogByCode(EntityLogDto deleteEntityLog);

	/**
	 * 删除:实体日志
	 * 
	 * @param deleteEntityLog
	 *            实体日志对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityLogByIds(EntityLogDto deleteEntityLog);

	/**
	 * 设置:实体日志
	 * 
	 * @param updateEntityLog
	 *            实体日志对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityLogByCode(EntityLogDto updateEntityLog);

	/**
	 * 设置:实体日志
	 * 
	 * @param updateEntityLog
	 *            实体日志对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityLogByIds(EntityLogDto updateEntityLog);

	/**
	 * 读取:实体日志
	 * 
	 * @param readEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象
	 */
	Integer readEntityLogByCodeNqId(EntityLogDto readEntityLog);

	/**
	 * 读取:实体日志
	 * 
	 * @param readEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象
	 */
	Integer readEntityLogByName(EntityLogDto readEntityLog);

	/**
	 * 查询:实体日志
	 * 
	 * @param findEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象
	 */
	EntityLogDto findEntityLogByCode(EntityLogDto findEntityLog);

	/**
	 * 查询:实体日志
	 * 
	 * @param findEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象
	 */
	EntityLogDto findEntityLogById(EntityLogDto findEntityLog);

	/**
	 * 查询:实体日志
	 * 
	 * @param findListEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象集合
	 */
	List<EntityLogDto> findListEntityLogByCode(EntityLogDto findListEntityLog);

	/**
	 * 查询:实体日志
	 * 
	 * @param findListEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志对象集合
	 */
	List<EntityLogDto> findListEntityLogByName(EntityLogDto findListEntityLog);

	/**
	 * 分页:实体日志
	 * 
	 * @param paginationEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志分页对象
	 */
	PaginationDto<EntityLogDto> paginationEntityLogByCode(EntityLogDto paginationEntityLog);

	/**
	 * 分页:实体日志
	 * 
	 * @param paginationEntityLog
	 *            实体日志对象
	 * 
	 * @return 实体日志分页对象
	 */
	PaginationDto<Map<String, Object>> paginationEntityLogByName(EntityLogDto paginationEntityLog);

	/**
	 * 保存:实体树
	 * 
	 * @param saveEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象
	 */
	EntityTreeDto saveEntityTreeByIdOrCode(EntityTreeDto saveEntityTree);

	/**
	 * 保存:实体树
	 * 
	 * @param saveEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象
	 */
	EntityTreeDto saveEntityTreeByName(EntityTreeDto saveEntityTree);

	/**
	 * 删除:实体树
	 * 
	 * @param deleteEntityTree
	 *            实体树对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityTreeByCode(EntityTreeDto deleteEntityTree);

	/**
	 * 删除:实体树
	 * 
	 * @param deleteEntityTree
	 *            实体树对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityTreeByIds(EntityTreeDto deleteEntityTree);

	/**
	 * 设置:实体树
	 * 
	 * @param updateEntityTree
	 *            实体树对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityTreeByCode(EntityTreeDto updateEntityTree);

	/**
	 * 设置:实体树
	 * 
	 * @param updateEntityTree
	 *            实体树对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityTreeByIds(EntityTreeDto updateEntityTree);

	/**
	 * 读取:实体树
	 * 
	 * @param readEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象
	 */
	Integer readEntityTreeByCodeNqId(EntityTreeDto readEntityTree);

	/**
	 * 读取:实体树
	 * 
	 * @param readEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象
	 */
	Integer readEntityTreeByName(EntityTreeDto readEntityTree);

	/**
	 * 查询:实体树
	 * 
	 * @param findEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象
	 */
	EntityTreeDto findEntityTreeByCode(EntityTreeDto findEntityTree);

	/**
	 * 查询:实体树
	 * 
	 * @param findEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象
	 */
	EntityTreeDto findEntityTreeById(EntityTreeDto findEntityTree);

	/**
	 * 查询:实体树
	 * 
	 * @param findListEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象集合
	 */
	List<EntityTreeDto> findListEntityTreeByCode(EntityTreeDto findListEntityTree);

	/**
	 * 查询:实体树
	 * 
	 * @param findListEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树对象集合
	 */
	List<EntityTreeDto> findListEntityTreeByName(EntityTreeDto findListEntityTree);

	/**
	 * 分页:实体树
	 * 
	 * @param paginationEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树分页对象
	 */
	PaginationDto<EntityTreeDto> paginationEntityTreeByCode(EntityTreeDto paginationEntityTree);

	/**
	 * 分页:实体树
	 * 
	 * @param paginationEntityTree
	 *            实体树对象
	 * 
	 * @return 实体树分页对象
	 */
	PaginationDto<Map<String, Object>> paginationEntityTreeByName(EntityTreeDto paginationEntityTree);

	/**
	 * 保存:实体关系
	 * 
	 * @param saveEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象
	 */
	EntityRelationshipDto saveEntityRelationshipByIdOrCode(EntityRelationshipDto saveEntityRelationship);

	/**
	 * 保存:实体关系
	 * 
	 * @param saveEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象
	 */
	EntityRelationshipDto saveEntityRelationshipByName(EntityRelationshipDto saveEntityRelationship);

	/**
	 * 删除:实体关系
	 * 
	 * @param deleteEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityRelationshipByCode(EntityRelationshipDto deleteEntityRelationship);

	/**
	 * 删除:实体关系
	 * 
	 * @param deleteEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityRelationshipByIds(EntityRelationshipDto deleteEntityRelationship);

	/**
	 * 设置:实体关系
	 * 
	 * @param updateEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityRelationshipByCode(EntityRelationshipDto updateEntityRelationship);

	/**
	 * 设置:实体关系
	 * 
	 * @param updateEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityRelationshipByIds(EntityRelationshipDto updateEntityRelationship);

	/**
	 * 读取:实体关系
	 * 
	 * @param readEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象
	 */
	Integer readEntityRelationshipByCodeNqId(EntityRelationshipDto readEntityRelationship);

	/**
	 * 读取:实体关系
	 * 
	 * @param readEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象
	 */
	Integer readEntityRelationshipByName(EntityRelationshipDto readEntityRelationship);

	/**
	 * 查询:实体关系
	 * 
	 * @param findEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象
	 */
	EntityRelationshipDto findEntityRelationshipByCode(EntityRelationshipDto findEntityRelationship);

	/**
	 * 查询:实体关系
	 * 
	 * @param findEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象
	 */
	EntityRelationshipDto findEntityRelationshipById(EntityRelationshipDto findEntityRelationship);

	/**
	 * 查询:实体关系
	 * 
	 * @param findListEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象集合
	 */
	List<EntityRelationshipDto> findListEntityRelationshipByCode(EntityRelationshipDto findListEntityRelationship);

	/**
	 * 查询:实体关系
	 * 
	 * @param findListEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系对象集合
	 */
	List<EntityRelationshipDto> findListEntityRelationshipByName(EntityRelationshipDto findListEntityRelationship);

	/**
	 * 分页:实体关系
	 * 
	 * @param paginationEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系分页对象
	 */
	PaginationDto<EntityRelationshipDto> paginationEntityRelationshipByCode(EntityRelationshipDto paginationEntityRelationship);

	/**
	 * 分页:实体关系
	 * 
	 * @param paginationEntityRelationship
	 *            实体关系对象
	 * 
	 * @return 实体关系分页对象
	 */
	PaginationDto<Map<String, Object>> paginationEntityRelationshipByName(EntityRelationshipDto paginationEntityRelationship);

	/**
	 * 保存:实体扩展
	 * 
	 * @param saveEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象
	 */
	EntityExtendDto saveEntityExtendByIdOrCode(EntityExtendDto saveEntityExtend);

	/**
	 * 保存:实体扩展
	 * 
	 * @param saveEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象
	 */
	EntityExtendDto saveEntityExtendByName(EntityExtendDto saveEntityExtend);

	/**
	 * 删除:实体扩展
	 * 
	 * @param deleteEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityExtendByCode(EntityExtendDto deleteEntityExtend);

	/**
	 * 删除:实体扩展
	 * 
	 * @param deleteEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 影响行数
	 */
	int deleteEntityExtendByIds(EntityExtendDto deleteEntityExtend);

	/**
	 * 设置:实体扩展
	 * 
	 * @param updateEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityExtendByCode(EntityExtendDto updateEntityExtend);

	/**
	 * 设置:实体扩展
	 * 
	 * @param updateEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 影响行数
	 */
	int updateEntityExtendByIds(EntityExtendDto updateEntityExtend);

	/**
	 * 读取:实体扩展
	 * 
	 * @param readEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象
	 */
	Integer readEntityExtendByCodeNqId(EntityExtendDto readEntityExtend);

	/**
	 * 读取:实体扩展
	 * 
	 * @param readEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象
	 */
	Integer readEntityExtendByName(EntityExtendDto readEntityExtend);

	/**
	 * 查询:实体扩展
	 * 
	 * @param findEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象
	 */
	EntityExtendDto findEntityExtendByCode(EntityExtendDto findEntityExtend);

	/**
	 * 查询:实体扩展
	 * 
	 * @param findEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象
	 */
	EntityExtendDto findEntityExtendById(EntityExtendDto findEntityExtend);

	/**
	 * 查询:实体扩展
	 * 
	 * @param findListEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象集合
	 */
	List<EntityExtendDto> findListEntityExtendByCode(EntityExtendDto findListEntityExtend);

	/**
	 * 查询:实体扩展
	 * 
	 * @param findListEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展对象集合
	 */
	List<EntityExtendDto> findListEntityExtendByName(EntityExtendDto findListEntityExtend);

	/**
	 * 分页:实体扩展
	 * 
	 * @param paginationEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展分页对象
	 */
	PaginationDto<EntityExtendDto> paginationEntityExtendByCode(EntityExtendDto paginationEntityExtend);

	/**
	 * 分页:实体扩展
	 * 
	 * @param paginationEntityExtend
	 *            实体扩展对象
	 * 
	 * @return 实体扩展分页对象
	 */
	PaginationDto<Map<String, Object>> paginationEntityExtendByName(EntityExtendDto paginationEntityExtend);
}